#! /usr/bin/env python
# -*- coding: utf-8 -*-
"""
@File Name: 性能监控器_stacklog.py
@Author: LT
@Date: 2021/9/27 10:10
# -----------------------------------------------------------------------------------------------------
@Description: 
找出性能瓶颈的一个办法就是在数据结构里面添加能够追踪并统计调用次数的代码！！！
# -----------------------------------------------------------------------------------------------------
"""
from 一个堆栈类_stack2 import Stack


class StackLog(Stack):                              # 计数 pushes/pops, max-size
    pushes = pops = 0                               # 共享的静态成员

    def __init__(self, start=[]):                   # 也可以是模块的变量
        self.maxlen = 0
        Stack.__init__(self, start)

    def push(self, object):
        Stack.push(self, object)                    # 真正的入栈
        StackLog.pushes += 1                        # 全局入栈操作的计数
        self.maxlen = max(self.maxlen, len(self))   # 实例级别的统计

    def pop(self):
        StackLog.pops += 1                          # 全局出栈操作的计数
        return Stack.pop(self)                      # 不能用'self.pops' ！

    def stats(self):                                # 获得统计量
        return f"栈总长度：{self.maxlen}", f"总出栈数：{self.pushes}", f"总入栈数：{self.pops}"


if __name__ == '__main__':
    pass
